package com.hualude.roadsign.service;

import com.hualude.roadsign.dto.DTRequestDto;
import com.hualude.roadsign.dto.DTResponseDto;
import com.hualude.roadsign.dto.JsonMsgDto;
import com.hualude.roadsign.dto.SignalLampDto;

import java.util.List;

/**
 * Created by xu_jiaHui on 2017/8/2.
 */
public interface SignalLampManageService {

    /**
     * @Description: 信号灯dt展示
     * @Author: xu_jiaHui
     * @Date: 2017/7/25 19:57
     */
    public DTResponseDto getSignalLamp4DT(DTRequestDto dtRequestDto,
                                          String actorIds,
                                          Integer orgId,
                                          Boolean audit,
                                          String startRoad,
                                          String endRoad,
                                          Integer alarmBinding) throws Exception;

    /**
     * @Description: 信号灯展示4app
     * @Author: xu_jiaHui
     * @Date: 2017/7/27 15:26
     */
    public List<SignalLampDto> getSignalLamp4APP(String actorIds,
                                                 Integer orgId,
                                                 Integer mCount,
                                                 Integer mSize,
                                                 String city,
                                                 String startRoad,
                                                 String endRoad,
                                                 String alarmType) throws Exception;


    /**
     * @Description: 通过id获取信号灯信息
     * @Author: xu_jiaHui
     * @Date: 2017/7/27 15:28
     */
    public SignalLampDto getSignalLampById(Integer signalLampById) throws Exception;

    /**
     * @Description: 获取路段By路名
     * @Author: xu_jiaHui
     * @Date: 2017/7/21 06:39
     */
    public List<String> getStartRoad(String roadName, Integer actorId, Integer orgId) throws Exception;

    /**
     * @Description: 通过起始路段搜索截止路段
     * @Author: xu_jiaHui
     * @Date: 2017/7/21 06:39
     */
    public List<String> getSectionByStartRoad(String roadName, Integer actorId, Integer orgId) throws Exception;


    /**
     * @Description: 删除信号灯
     * @Author: xu_jiaHui
     * @Date: 2017/7/26 13:00
     */
    public Integer deleteSignalLamp(String signalLampIds) throws Exception;

    /**
     * @Description: 添加信号灯
     * @Author: xu_jiaHui
     * @Date: 2017/7/26 13:27
     */
    public Integer addSignalLamp(SignalLampDto signalLampDto) throws Exception;

    /**
     * @Description: 编辑信号灯
     * @Author: xu_jiaHui
     * @Date: 2017/7/26 13:28
     */
    public Integer updateSignalLamp(SignalLampDto signalLampDto) throws Exception;

    /**
     * @Description: 根据OrgId，actorId获取城市4App
     * @author xu_jiaHui
     * @date 2017/7/30 15:13
     */
    public List<String> getCity4SignalLamp(Integer actorId, Integer orgId, Integer mCount, Integer mSize) throws Exception;

    /**
     * @Description: 根据city获取路口
     * @author xu_jiaHui
     * @date 2017/7/30 15:24
     */
    public List<String> getStartRoadByCity(String city, Integer actorId, Integer orgId, Integer mCount, Integer mSize) throws Exception;

    /**
     * @Description: 获取信号灯信息用于App地图展示
     * @author xu_jiaHui
     * @date 2017/8/3 14:15
     */
    public List<SignalLampDto> getSignalLamp4Map4App(Integer orgId,
                                                     String actorIds,
                                                     double neLongitude,
                                                     double neLatitude,
                                                     double swLongitude,
                                                     double swLatitude) throws Exception;

    /**
     * @Description: 通过起始路段搜索截止路段4App
     * @Author: xu_jiaHui
     * @Date: 2017/7/21 06:39
     */
    public List<String> getSectionByStartRoad4App(String roadName, String city, Integer actorId, Integer orgId, Integer mCount, Integer mSize) throws Exception;

    /**
     * @Description: 审核信号灯信息
     * @Author: xu_jiaHui
     * @Date: 2017/8/13 13:49
     */
    public Integer auditSignalLamp(String signalLampIds) throws Exception;

    /**
     * @Description: 绑定报警器
     * @Author: WYX.
     * @Date: 2018/4/30 22:46.
     */
    public Integer bindingDevice(String deviceId, Integer signalLampId) throws Exception;

    /**
     * @Description:解绑报警器
     * @Author: WYX.
     * @Date: 2018/4/30 22:48.
     */
    public Integer unbindingDevice(String deviceId,Integer signalLampId) throws Exception;

    /**
     * @Description: 获取故障通知列表
     * @Author: WYX.
     * @Date: 2018/5/1 15:09.
     */
    public DTResponseDto showAlarmHistory(DTRequestDto dtRequestDto, String deviceId, Integer deviceType)throws Exception;

    public List<SignalLampDto> getDeviceInfo(Integer deviceId) throws Exception;

}
